package cn.ljy.quicksnip.model.query;

import cn.ljy.authority.model.SysCustomer;
import cn.ljy.authority.model.SysHairdresser;
import cn.ljy.authority.model.SysShop;
import cn.ljy.common.model.validate.AddWorkValidation;
import cn.ljy.common.model.validate.UpdateWorkValidation;
import cn.ljy.quicksnip.model.QsAppointment;
import cn.ljy.quicksnip.model.QsHairdresserSchedule;
import cn.ljy.quicksnip.model.QsProject;
import cn.ljy.quicksnip.model.QsTimePeriod;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.util.Date;

@ApiModel(value = "理发师排班管理")
@Data
@NoArgsConstructor
public class QsHairdresserScheduleQuery extends QsHairdresserSchedule {

    @ApiModelProperty(value = "创建时间起始范围", example = "2023-01-01 12:00:00")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTimeQueryOfBegin;

    @ApiModelProperty(value = "创建时间截止范围", example = "2023-01-01 12:00:00")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTimeQueryOfEnd;

    @ApiModelProperty(value = "理发师入驻管理ID", example = "1")
    @NotNull(groups = UpdateWorkValidation.class, message = "理发师入驻管理ID不能为空")
    private Long id;

    @ApiModelProperty(value = "理发师ID", example = "272")
    @NotNull(groups = AddWorkValidation.class, message = "理发师ID不能为空")
    private SysHairdresser hairdresser;
    private Long hairdresserID;

    @ApiModelProperty(value = "店家ID", example = "288")
    @NotNull(groups = AddWorkValidation.class, message = "店家ID不能为空")
    private SysShop shop;
    private Long shopID;

    @ApiModelProperty(value = "时间段id", example = "1")
    @NotNull(groups = AddWorkValidation.class, message = "时间段ID不能为空")
    private QsTimePeriod timePeriod;
    private Long timePeriodID;

    @ApiModelProperty(value = "排班日期", example = "2024-01-01")
    @NotNull(groups = AddWorkValidation.class, message = "排班日期不能为空")
    private Date scheduleDate;

    @ApiModelProperty(value = "审核状态：0-未审核，1-审核通过，2-审核不通过", example = "1")
    private Integer auditStatus;

    @ApiModelProperty(value = "审核结果（通过/不通过原因）", example = "审核通过")
    private String auditResult;
}